package com.cloudbroker.bcs.csvc.uf30.facade.service;

import com.cloudbroker.bcs.csvc.uf30.api.service.VirFundService;
import com.cloudbroker.bcs.csvc.uf30.api.vo.request.*;
import com.cloudbroker.bcs.csvc.uf30.api.vo.request.base.CifForm;
import com.cloudbroker.bcs.csvc.uf30.api.vo.request.base.UF30Form;
import com.cloudbroker.bcs.csvc.uf30.api.vo.response.*;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.math.BigDecimal;

import static com.cloudbroker.bcs.csvc.uf30.api.constants.UF30T2FunctionIds.*;

/**
 * Created by xuyn15828 on 2016/3/21.
 */
@Service
public class VirFundServiceFacade implements VirFundService {
    @Resource
    private UF30T2RemoteService service;


    @Override
    public TransIdBackVo goldcoinChange(GoldCoinChangeForm param) {
        return service.callT2(LS_VIRFUNDOUT_GOLDCOIN_CHANGE , param , TransIdBackVo.class);
    }

    @Override
    public TransIdBackVo goldcoinRechangeOff(GoldcoinRechangeOffForm param) {
        return service.callT2(LS_VIRFUNDOUT_GOLDCOIN_RECHANGE_OFF , param , TransIdBackVo.class);
    }

    @Override
    public TransIdBackVo goldcoinTrans(GoldcoinTransForm param) {
        return service.callT2(LS_VIRFUNDOUT_GOLDCOIN_TRANS , param , TransIdBackVo.class);
    }

    @Override
    public GoldcoinJourQryBackVo goldcoinJourQry(GoldcoinJourQryForm param) {
        return service.callT2(LS_VIRFUNDOUT_GOLDCOINJOUR_QRY , param , GoldcoinJourQryBackVo.class);
    }

    @Override
    public GoldcoinBalanceQryBackVo goldcoinBalanceQry(CifForm param) {
        return service.callT2(LS_VIRFUNDOUT_GOLDCOIN_BALANCEQRY , param , GoldcoinBalanceQryBackVo.class);
    }

    @Override
    public TransIdBackVo goldcoinSystemChange(GoldcoinSysRechangeForm param) {
        return service.callT2(LS_VIRFUNDOUT_GOLDCOIN_SYSRECHANGE , param , TransIdBackVo.class);
    }

    @Override
    public GoldcoinJourComQryBackVo goldcoinJourComQry(GoldcoinJourComQryForm param) {
        return service.callT2(LS_VIRFUNDOUT_GOLDCOINJOUR_COM_QRY , param , GoldcoinJourComQryBackVo.class);
    }

    @Override
    public GoldcoinComBalanceQryBackVo goldcoinComBalanceQry(UF30Form param) {
        return service.callT2(LS_VIRFUNDOUT_GOLDCOIN_COM_BANLANCEQRY , param , GoldcoinComBalanceQryBackVo.class);
    }

    @Override
    public PointJourQryBackVo pointJourQry(PointJourQryForm param) {
        return service.callT2(LS_VFUNDPOINTOUT_JOUR_QUERY , param , PointJourQryBackVo.class);
    }

    @Override
    public PointBalanceQryBackVo pointQry(PointBalanceForm param) {
        return service.callT2(LS_VFUNDPOINTOUT_QUERY , param , PointBalanceQryBackVo.class);
    }

    @Override
    public PointChangeBackVo pointRecharge(PointChangeForm param) {
        return service.callT2(LS_VFUNDPOINTOUT_BLUE_COVER , param , PointChangeBackVo.class);
    }

    @Override
    public PointChangeBackVo pointConsume(PointChangeForm param) {
        return service.callT2(LS_VFUNDPOINTOUT_RED_DASHED , param , PointChangeBackVo.class);
    }
}
